Skip to content

docs(ssi): restore the serializability guarantee now that #136–#140 are fixed and gated - #152

Merged
gburd merged 1 commit into
masterfrom
docs/restore-ssi-claims
Sep 7, 2026
Merged

docs(ssi): restore the serializability guarantee now that #136–#140 are fixed and gated#152
gburd merged 1 commit into
masterfrom
docs/restore-ssi-claims

Conversation

@gburd

@gburd gburd commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Completes the arc opened by #141. That PR retracted the SSI serializability claims before any fix landed, deliberately, so the project stopped shipping a guarantee the code did not honor. All five externally reported defects are now fixed and each has a regression test running in CI, so RFC 0003's own condition for retiring its limitations block — "removed only when each item is fixed and covered by a test" — is satisfied.

RFC 0003

txnbegin.md

The user-facing caveat becomes "Fixed after 5.3.34" with an explicit upgrade recommendation, instead of a standing limitation.

Gates

build.py ok · --selfcheck ok · man coverage GATE PASS · spelling GATE PASS (no new typos) · lychee 17043 links, 0 errors.

Docs-only; no code.

…re fixed and gated

PR #141 deliberately retracted these claims BEFORE the fixes landed, so we would
not keep shipping a promise the code did not keep. All five externally reported
defects are now fixed, and the RFC's own condition for retiring the limitations
block -- 'removed only when each item is fixed *and* covered by a test' -- is met.

RFC 0003:
  - Replaced the 'best-effort, not absolute' block with a table recording each
    issue, its fix, and the CI-gated tier that now guards it (#136 -> isolation,
    #137/#138 -> soak, #140 -> lockmatrix), plus the third leak (si_ref on a
    SIREAD->WRITE upgrade) that validation surfaced and no report mentioned.
  - Recorded the root-cause class and its permanent guard: a new DB_LOCK_* mode
    now fails CI unless the inventory is updated.
  - Recorded that the different-pages-of-one-btree symptom was NOT a second
    defect: two independent constructions show the control timing detects the
    conflict correctly, so it was the same commit-window race.
  - Reclamation is now stated as bounded, with test/soak named as the evidence.

txnbegin.md: the user-facing caveat becomes 'Fixed after 5.3.34' with an upgrade
recommendation, rather than a standing limitation.

Gates: build ok, selfcheck ok, man coverage PASS, spelling PASS (no new typos),
lychee 17043 links / 0 errors.
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Coccinelle convention checks

No new violations. ✅

Resolved since baseline (2) -- update dist/cocci/baseline.txt to lock these in.
rule_mutex_unbalanced|MUTEX_UNBALANCED|src/crypto/mersenne/mt19937db.c|return (ret);
rule_mutex_unbalanced|MUTEX_UNBALANCED|src/mp/mp_register.c|return (ret);

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

ABI diff vs v5.3.34 (libabigail — authoritative)

Functions changes summary: 0 Removed, 0 Changed, 2 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

2 Added functions:

  [A] 'function int __lock_sireap_lockers(ENV*)'    {__lock_sireap_lockers}
  [A] 'function int __os_csprng(ENV*, void*, size_t)'    {__os_csprng}

Removed exported symbols (nm -D, _NNNN version suffix normalized)

None.


Advisory: libabigail/nm is the authoritative binary-ABI check; Coccinelle is complementary source-level early warning. See dist/cocci/README.md.

@gburd
gburd merged commit f110a7e into master Sep 7, 2026
53 of 54 checks passed
@gburd
gburd deleted the docs/restore-ssi-claims branch September 7, 2026 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant